#ifndef COMBINED_OBJECT_H
#define COMBINED_OBJECT_H

#include <vector>
#include "object.h"
#include "defines/operation.h"

class CombinedObject : public Object{
    public:
        CombinedObject(int = 0);
        CombinedObject(int, const Color &, int = 0);
        CombinedObject(int, std::vector<Object *>, int = 0);
        CombinedObject(int, std::vector<Object *>, const Color &, int = 0);
        ~CombinedObject();

        void changeOperation(int);
        void deleteObject(Object *);

        unsigned int getObjectsSize() const;
        Object *getObject(unsigned int) const;
        void addObject(Object *);

        void draw(bool, bool = false, const Color & = Color(0.0, 0.0,0.0,0.0)) const;
        void getMinMax(double *, double *, unsigned int) const;

    private:
        std::vector<Object *> objects;
};

#endif
